Socket Programming-এ IP Address এবং Port হলো দুটি গুরুত্বপূর্ণ উপাদান, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে সঠিকভাবে যোগাযোগ স্থাপন এবং ডেটা আদান-প্রদানে সহায়ক হয়। নেটওয়ার্ক ভিত্তিক অ্যাপ্লিকেশন এবং পরিষেবা ডেভেলপ করতে IP Address এবং Port Number-এর সমন্বয় প্রয়োজন হয়। এই দুটি উপাদান একসাথে একটি Socket তৈরি করে, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে সংযোগ স্থাপন করে এবং নির্দিষ্ট নেটওয়ার্ক পরিষেবার সাথে যোগাযোগ করতে সাহায্য করে।
১. IP Address এর ধারণা
IP Address হলো একটি ইউনিক নেটওয়ার্ক ঠিকানা, যা নেটওয়ার্কে থাকা প্রতিটি ডিভাইস বা হোস্টকে চিহ্নিত করে। এটি নেটওয়ার্কের মাধ্যমে ডেটা পাঠানোর এবং গ্রহণ করার জন্য ব্যবহৃত হয়। IP Address মূলত দুটি প্রধান প্রকারে বিভক্ত:
- IPv4 (Internet Protocol version 4):
- এটি সবচেয়ে প্রচলিত IP অ্যাড্রেস ফরম্যাট, যা ৩২-বিট সংখ্যা ব্যবহার করে। IPv4 সাধারণত দশমিক ফরম্যাটে থাকে, যেমন:
192.168.1.1
। - IPv4-এর সংখ্যা সীমিত হওয়ায়, এর মাধ্যমে ৪ বিলিয়ন ইউনিক অ্যাড্রেস তৈরি করা সম্ভব। এটি বর্তমানে ব্যাপকভাবে ব্যবহৃত হলেও, এর সংখ্যা সীমিত হওয়ায় IPv6 চালু করা হয়েছে।
- IPv6 (Internet Protocol version 6):
- এটি ১২৮-বিট অ্যাড্রেস ফরম্যাট, যা IPv4-এর তুলনায় অনেক বড় সংখ্যা ব্যবহার করে। IPv6-এর উদাহরণ হতে পারে:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
। - IPv6-এর মাধ্যমে অনেক বেশি সংখ্যক ইউনিক অ্যাড্রেস তৈরি করা সম্ভব, যা বর্তমান এবং ভবিষ্যতে ইন্টারনেট সংযুক্ত ডিভাইসের প্রয়োজন মেটাতে সক্ষম।
IP Address-এর কাজ:
- নেটওয়ার্কে এক ডিভাইস থেকে অন্য ডিভাইসে ডেটা প্যাকেট পৌঁছানোর জন্য IP Address প্রয়োজন।
- IP Address ব্যবহার করে একটি ডিভাইস বা হোস্টকে সঠিকভাবে চিহ্নিত করা যায় এবং নেটওয়ার্কের মাধ্যমে যোগাযোগ স্থাপন করা সম্ভব হয়।
২. Port এর ধারণা
Port হলো একটি লজিক্যাল চ্যানেল বা নম্বর, যা একটি নির্দিষ্ট নেটওয়ার্ক পরিষেবা বা অ্যাপ্লিকেশনকে চিহ্নিত করে। এটি IP Address-এর সাথে মিলে একটি Socket তৈরি করে, যা একটি নির্দিষ্ট সার্ভিসের সাথে সংযোগ স্থাপনে সহায়ক। Port Number সাধারণত ০ থেকে ৬৫,৫৩৫ এর মধ্যে একটি সংখ্যা হতে পারে এবং এটি IP Address-এর সাথে একত্রে একটি নির্দিষ্ট পরিষেবাকে নির্দেশ করে।
Port সাধারণত তিন ভাগে বিভক্ত:
Well-Known Ports (০ থেকে ১০২৩):
- এই পোর্টগুলো সাধারণত প্রচলিত পরিষেবাগুলোর জন্য সংরক্ষিত থাকে। উদাহরণস্বরূপ:
- HTTP এর জন্য পোর্ট ৮০
- HTTPS এর জন্য পোর্ট ৪৪৩
- FTP এর জন্য পোর্ট ২১
- SMTP এর জন্য পোর্ট ২৫
Registered Ports (১০২৪ থেকে ৪৯১৫১):
- এই পোর্টগুলো বিভিন্ন অ্যাপ্লিকেশন এবং পরিষেবার জন্য সংরক্ষিত থাকে। এগুলো নির্দিষ্ট সফ্টওয়্যার বা পরিষেবার জন্য রেজিস্টার করা হয়।
Dynamic or Private Ports (৪৯১৫২ থেকে ৬৫৫৩৫):
- এই পোর্টগুলো ক্লায়েন্ট অ্যাপ্লিকেশনগুলোর জন্য ব্যবহৃত হয়, যা স্বয়ংক্রিয়ভাবে অ্যাসাইন করা হয়। ক্লায়েন্ট যখন সার্ভারের সাথে সংযোগ স্থাপন করে, তখন এটি সাধারণত একটি ডাইনামিক পোর্ট ব্যবহার করে।
Port-এর কাজ:
- একটি নির্দিষ্ট পরিষেবা বা অ্যাপ্লিকেশনকে চিহ্নিত করে এবং IP Address-এর সাথে মিলে একটি Socket তৈরি করে।
- ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা ট্রান্সফার করার সময় নির্দিষ্ট পোর্ট ব্যবহার করা হয়, যা ডেটা প্যাকেটকে সঠিক পরিষেবার দিকে নির্দেশ করে।
৩. IP Address এবং Port-এর সমন্বয়
IP Address এবং Port একসাথে মিলে একটি Socket তৈরি করে, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে সঠিকভাবে যোগাযোগ স্থাপন করতে সহায়ক। উদাহরণস্বরূপ:
- একটি ওয়েব ব্রাউজার যখন কোনো ওয়েব সার্ভারের সাথে সংযোগ স্থাপন করে, তখন এটি সার্ভারের IP Address এবং HTTP এর জন্য পোর্ট ৮০ ব্যবহার করে।
- সার্ভার এই IP Address এবং Port Number ব্যবহার করে সংযোগ গ্রহণ করে এবং রেসপন্স পাঠায়।
উদাহরণ
উদাহরণস্বরূপ, একটি Socket Address হতে পারে 192.168.1.1:80
, যেখানে:
- IP Address:
192.168.1.1
(IPv4) - Port:
80
(HTTP)
এই Socket Address নির্দেশ করে যে, এটি 192.168.1.1 আইপি ঠিকানায় থাকা ডিভাইসে HTTP পরিষেবার সাথে সংযোগ স্থাপনের জন্য ব্যবহৃত হবে।
৪. IP Address এবং Port-এর গুরুত্ব
- নেটওয়ার্কে পরিষেবা শনাক্তকরণ: IP Address এবং Port ব্যবহার করে নির্দিষ্ট পরিষেবা এবং অ্যাপ্লিকেশনকে সঠিকভাবে চিহ্নিত করা যায়।
- ক্লায়েন্ট-সার্ভার মডেল: ক্লায়েন্ট এবং সার্ভারের মধ্যে সঠিক যোগাযোগ স্থাপনের জন্য IP Address এবং Port অপরিহার্য।
- নিরাপত্তা: বিভিন্ন পোর্ট নম্বর ব্যবহার করে ফায়ারওয়াল নিয়ম তৈরি করা যায়, যা নির্দিষ্ট পোর্টগুলোতে অ্যাক্সেস নিয়ন্ত্রণ করে এবং নেটওয়ার্ক সিকিউরিটি নিশ্চিত করে।